1. Field of the Invention
The present invention relates to the collection of events within a Distributed Object System.
2. Description of Related Art
Distributed Computing is an area of computing in which distinct software modules running on physically separate computing nodes can communicate with each other, and can request each other to perform tasks. The development of object-oriented technology has given Distributed Computing extra impetus in recent years and the convergence of the two technologies has resulted in Distributed Object Technology.
As the number and complexity of these objects has increased, so have the problems involved in establishing exactly what is happening in such a system. Although a number of software support tools are available to system designers and maintainers, they are currently rather unsatisfactory. Various tools are currently available, for example, for debugging conventional xe2x80x9csingle processxe2x80x9d software, allowing developers to step through the code in the software and to inspect the state of the program. There are also one or two tools applicable to object-orientated programming that enable programmers to xe2x80x9cvisualisexe2x80x9d objects within conventional software by showing the creation and deletion of objects.
Difficulties arise, however, since such conventional tools are really not sufficiently powerful or flexible for the needs of designers and maintainers of large Distributed Object Systems.
According to a first aspect of the present invention there is provided a Distributed Object System having a plurality of objects, each object having an associated filter, the filter being arranged to intercept messages sent or received by its corresponding object and to forward information representative of said messages to an Event Collector.
The invention also extends to a corresponding method, and in particular extends, in a second aspect of the invention, to a method of characterising a Distributed Object System having a plurality of objects, the method comprising providing each object with an associated filter which is arranged to intercept messages sent or received by its corresponding object and to forward information representative of said messages to an Event Collector, the Distributed Object System being characterised according to the messages received by the Event Collector.
The messages collected by the Event Collector may be representative of a predefined class of events, for example the class of interactions between objects and the deletion and creation of objects, Preferably, the Event Collector may forward collected events to an Event Dispatch Mechanism, which processes the events and forwards them to one or more User Applications. These User Applications may take a variety of different forms, including Visualizer Applications. Fault Detecting Applications. Control Applications and Charging Applications. In a preferred embodiment, several different User Applications (objects) may be running simultaneously, and each may be independently configurable. Depending upon the particular requirements, the configuration may be automatic or user-defined.
In one form, the invention may provide a mechanism for creating a stream of events, where each event consists of either the transmission of a message from one object to another, or the creation or deletion of an object. The system may be installed without intrusive changes to the code of the object themselves. Furthermore, it may allow more than one individual to visualise interactions in the system at any one time, allowing each individual to see only the actions that are relevant.
Alternatively, in another embodiment the system may provide fault reporting and/or fault recovery services within a Distributed Object System.
The system accordingly provides a tool or series of tools which can collect information, in a well defined way, from the various objects within a Distributed Object System. The information thus collected may then be used to analyse the system, for example to find out what has happened during a system failure or other unexpected event. Equally importantly, the information collected may be used to assist system designers who are attempting to explain the system to other people who are not directly involved in development. Conventionally, Distributed Object Systems are extremely difficult to explain, and the present invention in at least some forms, will improve the xe2x80x9cinformation transferxe2x80x9d process from developers and designers to technical collaborators and customers.